A directory service is a software system that stores, organizes and provides access to information in a “directory.” A “directory” is a map correlating “names” and “values.” The correlations of the map allow the lookup of values given a name. Similar to the way that a word in a dictionary may have multiple definitions, a “name” may be associated with multiple pieces of information. To extend this analogy, as a word listed in a dictionary may alternatively denote different parts of speech and different definitions, a “name” in a “directory” may have many different types of data correlated to it.
A directory service is an important component of a NOS (Network Operating System). In a directory used by a network operating system (NOS), nodes represent resources that are managed by the NOS. These resources may include: users, computers, printers and/or other shared resources. Some directory services have descended from the X.500 directory service. A directory service is a shared information infrastructure for locating, managing, administering, and organizing common items and network resources, which can include volumes, folders, files, printers, users, groups, devices, telephone numbers and other objects. Those of skill in the art will appreciate that a directory service is not the same thing as a “relational database.”
An example of a conventional system that uses directory services will now be explained as a way of introducing some of the terminology used herein. The system has multiple server nodes, each of which provides directory services. These multiple server nodes that provide directory service are collectively called a “cluster.” The cluster handles all the collective tenants, system-wide. In this example system: (i) there are two tenants; (ii) the two tenants (Company A and Company B) are “overlay tenants;” (iii) each tenant has its own private “overlay network;” and (iv) each tenant's respective overlay network is invisible to the other overlay tenant. The “client” (as that term is used herein) provides the overlay network connectivity. For example, one kind of client is a switch that provides connectivity to virtual machines (VMs) and/or hosts belonging to both Company A and Company B.